/*
 * @Author: Collin colin.w.cai@hotmail.com
 * @Date: 2022-10-26 00:05:48
 * @LastEditors: Collin colin.w.cai@hotmail.com
 * @LastEditTime: 2022-10-27 01:00:36
 * @FilePath: /linn-go-practice/types/float_type.go
 * @Description:演示Go语言的内置数据类型中的浮点类型。
 */
package types

import (
	"fmt"
	"math"
)

func DemoFloat() {
	var fv1 float32 = 12
	fv2 := 12.0 // 如果不加小数点，fvalue2会被推导为整型而不是浮点型
	fmt.Println(fv1, fv2)
}

func DemoConvertFloat() {
	var fv1 float32 = 12
	var fv2 float64 = 12.0 // 如果不加小数点，fvalue2会被推导为整型而不是浮点型

	//fmt.Println(fv1 == fv2) //编译错误
	fmt.Println(float64(fv1) == fv2)
}

//因为浮点数不是一种精确的表达方式，所以像整型那样直接用==来判断两个浮点数是否相等 是不可行的，这可能会导致不稳定的结果。
func IsEqualFloat(f1, f2, p float64) bool {
	return math.Dim(f1, f2) < p
}
